package com.qkl.xiatang.app.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qkl.xiatang.app.dto.feed.QueryFeedListOut;
import com.qkl.xiatang.app.dto.feed.StatisticsFeedInfoVO;
import com.qkl.xiatang.app.entity.feed.FeedEntity;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface FeedManagerMapper extends BaseMapper<FeedEntity> {


    /**
     * 查询饲料列表
     * @param companyId
     * @param type 1饲料，2动保
     * @return
     */
    List<QueryFeedListOut> queryFeedList(@Param("companyId") String companyId, @Param("type")  Integer type);

    /**
     * 查询饲料库存
     * @param companyId
     * @param type
     * @return
     */
    List<QueryFeedListOut> queryFeedStock(@Param("companyId") String companyId, @Param("type")  Integer type);

    /**
     * 查询饲料库存警告
     * @param feedIdList
     * @return
     */
    List<FeedEntity> queryFeedStockWarnList(@Param("feedIdList") List<String> feedIdList);

    /**
     * 查询饲料图片
     * @param feedIdList
     * @param feedId
     * @return
     */
    List<FeedEntity> queryFeedImageList(@Param("feedIdList") List<String> feedIdList, @Param("feedId")  String feedId);

    /**
     * 查询喂料、动保任务所有饲料图片
     * @param companyId
     * @param type
     * @param allocDate
     * @param serialNo
     * @param timeFieldName
     * @return
     */
    List<String> queryFeedImageTaskAll(@Param("companyId") String companyId, @Param("type")  Integer type, @Param("allocDate") Date allocDate, @Param("serialNo")  Integer serialNo,@Param("timeFieldName")  String timeFieldName);


    /**
     * 统计饲料喂料情况
     * @param pondId
     * @return
     */
    List<StatisticsFeedInfoVO> statisticsFeedFeedInfo(@Param("pondId")  String pondId,@Param("companyId")  String companyId);

    /**
     * 统计动保喂料情况
     * @param pondId
     * @return
     */
    List<StatisticsFeedInfoVO> statisticsZooFeedInfo(@Param("pondId")  String pondId,@Param("companyId")  String companyId);

    /**
     * 查询动保饲料id
     * @param companyId
     * @param allocDate
     * @return
     */
    List<String> queryZooFeedIdList(@Param("companyId")  String companyId,@Param("allocDate")  Date allocDate);

}
